package com.常用类.Wrapper包装类;

/**
 * 作    者 ：吾路巴尼
 * 创建时间 ：2025/2/23-17:49
 */
public class Integer_Detail {
    /**
     * 1.Integer包装类装箱细节
     * public static Integer valueOf(int i) {
     * if (i >= IntegerCache.low(-128) && i <= IntegerCache.high(127))
     * return IntegerCache.cache[i + (-IntegerCache.low)];
     * return new Integer(i);
     * }
     * 2.包装类与基本数据类型:
     * 只要是跟基本数据类型比较，判断的是值是否相对：
     * Integer  t1 =Integer.valueOf(200);
     * int t2 = 200;
     * System.out.println(t1==t2);  //true，
     */
    public static void main(String[] args) {
        Integer i1 = Integer.valueOf(100);  //如果值在-128~127之间，则直接返回缓存池中的对象
        Integer i2 = Integer.valueOf(100);  //同理，所以是一个对象,return IntegerCache.cache[i + (-IntegerCache.low)];
        System.out.println(i1 == i2);  //true，

        Integer i3 = Integer.valueOf(200);//如果不在-128~127之间，则创建一个对象,return new Integer(i);
        Integer i4 = Integer.valueOf(200);//同理，所以创建另一个对象
        System.out.println(i3 == i4);  //false，因为不是一个对象；

        Integer i5 = 100;//自动装箱，底层是用的Integer i5 =Integer.valueOf(100);

        /**2.包装类与基本数据类型比较：
         * 只要是跟基本数据类型比较，判断的是值是否相对：*/
        Integer t1 = Integer.valueOf(200);
        int t2 = 200;
        System.out.println(t1 == t2);  //true，

    }
}
